#pragma once
#include "DataStructure/Common/SGNamespace.h"
#include "DataStructure/Common/Out.h"
#include "DataStructure/Common/Status.h"
/**
 * @brief 定义 Export 命名空间的开始部分。
 */
#define EXPORT_NAMESPACE_OPEN \
    namespace Export          \
    {                        

/**
 * @brief 定义 Export 命名空间的结束部分。
 */
#define EXPORT_NAMESPACE_CLOSE \
    }                          \
    ;

/**
 * @brief 定义 BDF 命名空间的开始部分。
 */
#define BDF_NAMESPACE_OPEN \
    namespace BDF          \
    {                            

/**
 * @brief 定义 BDF 命名空间的结束部分。
 */
#define BDF_NAMESPACE_CLOSE \
    }                             \
    ;

/**
 * @brief 定义 SG 和 Export 嵌套命名空间的开始部分。
 */
#define SG_EXPORT_NAMESPACE_OPEN SG_NAMESPACE_OPEN EXPORT_NAMESPACE_OPEN

/**
 * @brief 定义 SG 和 Export 嵌套命名空间的结束部分。
 */
#define SG_EXPORT_NAMESPACE_CLOSE EXPORT_NAMESPACE_CLOSE SG_NAMESPACE_CLOSE

/**
 * @brief 定义 SG、Export 和 BDF 嵌套命名空间的开始部分。
 */
#define SG_EXPORT_BDF_NAMESPACE_OPEN SG_NAMESPACE_OPEN EXPORT_NAMESPACE_OPEN BDF_NAMESPACE_OPEN

/**
 * @brief 定义 SG、Export 和 BDF 嵌套命名空间的结束部分。
 */
#define SG_EXPORT_BDF_NAMESPACE_CLOSE EXPORT_NAMESPACE_CLOSE SG_NAMESPACE_CLOSE BDF_NAMESPACE_CLOSE

/**
 * @brief 在 SG::DBManager 命名空间中声明 DBServiceFactory 类。
 */

#define DBSERVICEFACTORY_DEC        \
    namespace SG                    \
    {                               \
        namespace DBManager   \
        {                           \
            class DBServiceFactory; \
        }                           \
    }
